﻿using System;
namespace Producers.Kis.Xtee.Riik.Ee.Producer.Kis {
    
    
    public partial class DebtSettlement : global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IDebtSettlement {
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__paymentRecipient;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__bank;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__account;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__statement;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__referenceNumber;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__iBAN;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__sWIFT;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__bankCode;
        
        private bool @__isDomestic;
        
        public DebtSettlement() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public DebtSettlement(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @paymentRecipient, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @bank, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @account, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @statement, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @referenceNumber, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @iBAN, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @sWIFT, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @bankCode, bool @isDomestic) {
            this.@__paymentRecipient = @paymentRecipient;
            this.@__bank = @bank;
            this.@__account = @account;
            this.@__statement = @statement;
            this.@__referenceNumber = @referenceNumber;
            this.@__iBAN = @iBAN;
            this.@__sWIFT = @sWIFT;
            this.@__bankCode = @bankCode;
            this.@__isDomestic = @isDomestic;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public DebtSettlement(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @paymentRecipient, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @bank, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @account, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @statement, bool @isDomestic) {
            this.@__paymentRecipient = @paymentRecipient;
            this.@__bank = @bank;
            this.@__account = @account;
            this.@__statement = @statement;
            this.@__isDomestic = @isDomestic;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected DebtSettlement(IDebtSettlement @debtSettlement) {
            this.@__paymentRecipient = @debtSettlement.PaymentRecipient;
            this.@__bank = @debtSettlement.Bank;
            this.@__account = @debtSettlement.Account;
            this.@__statement = @debtSettlement.Statement;
            this.@__referenceNumber = @debtSettlement.ReferenceNumber;
            this.@__iBAN = @debtSettlement.IBAN;
            this.@__sWIFT = @debtSettlement.SWIFT;
            this.@__bankCode = @debtSettlement.BankCode;
            this.@__isDomestic = @debtSettlement.IsDomestic;
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString PaymentRecipient {
            get {
                return this.@__paymentRecipient;
            }
            set {
                this.@__paymentRecipient = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString Bank {
            get {
                return this.@__bank;
            }
            set {
                this.@__bank = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString Account {
            get {
                return this.@__account;
            }
            set {
                this.@__account = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString Statement {
            get {
                return this.@__statement;
            }
            set {
                this.@__statement = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString ReferenceNumber {
            get {
                return this.@__referenceNumber;
            }
            set {
                this.@__referenceNumber = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString IBAN {
            get {
                return this.@__iBAN;
            }
            set {
                this.@__iBAN = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString SWIFT {
            get {
                return this.@__sWIFT;
            }
            set {
                this.@__sWIFT = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString BankCode {
            get {
                return this.@__bankCode;
            }
            set {
                this.@__bankCode = value;
            }
        }
        
        public virtual bool IsDomestic {
            get {
                return this.@__isDomestic;
            }
            set {
                this.@__isDomestic = value;
            }
        }
    }
}
